package imoocvideodev.service;

import imoocvideodev.common.result.IMoocJSONResult;
import imoocvideodev.common.result.PagedResult;
import imoocvideodev.pojo.Comments;
import imoocvideodev.pojo.Videos;
import imoocvideodev.vo.VideosVO;

import java.util.List;

/**
 * @Author: Redi
 * @Date: 2021/2/6 21:47
 * @Description: 视频服务类
 */
public interface VideoService {

    /**
     * @author Redi
     * @description 更新视频信息
     * @params videos
     * @return IMoocJSONResult
     * @date 2021/2/9
     */
    IMoocJSONResult update(Videos videos);

    /**
     * @author Redi
     * @description 插入视频
     * @params videos
     * @return String
     * @date 2021/2/9
     */
    String insert(Videos videos);

    /**
     * @author Redi
     * @description 分页查询视频列表
     * @params page,pageSize
     * @return PagedResult
     * @date 2021/2/9
     */
    PagedResult findAllVideos(Videos video, Integer isSaveRecord, Integer page, Integer pageSize);

    /**
     * @author Redi
     * @description 获得热搜词的接口
     * @params
     * @return List<String>
     * @date 2021/2/23
     */
    List<String> getHotWords();

    /**
     * @author Redi
     * @description 用户喜欢视频接口
     * @params userId,videoId,videoCreaterId
     * @return IMoocJSONResult
     * @date 2021/2/24
     */
    IMoocJSONResult userLikeVideo(String userId, String videoId, String videoCreaterId);

    /**
     * @author Redi
     * @description 用户取消喜欢视频接口
     * @params userId,videoId,videoCreaterId
     * @return IMoocJSONResult
     * @date 2021/2/24
     */
    IMoocJSONResult userUnLikeVideo(String userId, String videoId, String videoCreaterId);

    /**
     * @author Redi
     * @description 保存用户评论
     * @params comments
     * @return IMoocJSONResult
     * @date 2021/2/25
     */
    IMoocJSONResult saveComment(Comments comments);

    /**
     * @author Redi
     * @description 获取视频的所有评论（分页）。
     * @params videoId,page,size
     * @return PagedResult
     * @date 2021/2/25
     */
    PagedResult getAllComments(String videoId, Integer page , Integer size);
}
